The present invention relates to a method for retarding the duplication of a data-storage device, more particularly, to a method for retarding the duplication of a main program in the data-storage device, thus protecting the intelligent property.
Today is an information era, the application of computers influences every aspect of our life. As long as the computer software grow sophisticated, the capital and human resource required for the development of software are vast. Nevertheless, the profit is also tremendous if the software product is popular.
However, vast profit of selling computer software has always attracted many cormorants to duplicate (copy) those popular software and gain unlawful money. The action of duplicating and selling software is an unlawful way infringe the intelligent property and make costly damage to those who develop the infringed software. Therefore, how to prevent the storage device, such as hard disk, floppy disk, CDR . . . etc from being duplicated is important for protection of intelligent property.
In general, the computer-related data are stored in a data-storage, device such as hard disk, magnetic tape, MO, CDROM, CDR . . . etc. There exist various skill for preventing the duplication or copying of the contents in those data-storage device. Taking the floppy disk as an example, some skills, such as different format, multi-track, laser punching, data structure transformation, encoding . . . etc, are employed to block the infringer. Taking the CD-ROM as an example, some skills, such as bad track, gap, ultra large file, sub-channel music track . . . etc, are employed to block the infringer. Moreover, those approaches are easy to trace by experienced hackers and can not protect the data stored in the storage device virtually.
To get a better insight into the protection of software, the classification of file type is essential. The data files, such as music data (WAVE file or MP3 file), video file (DAT file of MPG file), or graphic file (GIF file, JPG file or BMP file), have stipulated specification for convenience of designing viewing/playing program. Therefore, this kind of data are difficult to manipulate for preventing duplication. Moreover, another kind of files are executable files such as the start up program or setup program of an application program hereinafter these files are generically referred to as main programs. These types of files generally can not be viewed by a viewing program, therefore, they are more likely conceived in a duplication-retarding scheme.
It is an object of the present invention to provide a method for retarding the duplication of the main program of software stored in a data-storage device.
To achieve the above object, the method according to the present invention comprises the following processing phases.
First phase is a preparation phase. In the preparations phase, a processing program is provided to globally or locally encode the main program to be protected, the processing program further employs a xe2x80x9cspecific prime numberxe2x80x9d as the base of data movement, other than conventional move operation with the base of 8 bit. The processing program also can add checking code into specific location of the main program for the checking operation in a later phase. The checking codes are also added by the above-mentioned prime-number base, the integrity of the checking codes will be lost if a conventional copy command (generally in the base of 8 bits) is used to copy the checking code.
Furthermore, a link program is provided to link the processing program and the main program to be protected into a composite program which is an execution file.
In the first phase, an examining program is provided as the new main program of the composite program. The examining program is functioned to determine the genuineness of the main program to be protected in the data storage device by checking the predetermined checking codes.
The second phase is the test and manufacture phase, the main program to be protected has been encoded and added with checking codes by the processing program and then linked with the processing program and the checking program to form a executable composite program by the link program. The composite program is tested, by the built-in checking program and the processing program whether all the checking codes thereof are right. The data-storage device containing the processed main program are mastered for a small quantity and added with checking code. The data-storage device can be mass-produced if the small amount of mastered pieces have passed the test of checking codes by the processing program and the checking program.
The final phase, the third phase, in the data-storage device is executing, the examining program is invoked to check the genuineness of the data-storage device. The examining program uses the processing program to check the predetermined checking codes. The program is terminated if any of the checking code is wrong and the original main program is decoded by the processing program if all the checking codes are right.